package com.ruoyi.carbon.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 采购合同对象 scm_purchase_contract
 * 
 * @author ruoyi
 * @date 2024-11-22
 */
public class ScmPurchaseContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    private Long id;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNo;

    private String contract;

    /** 申请id */
    private Long applyId;

    /** 申请编号 */
    @Excel(name = "申请编号")
    private String applyNo;

    /** 供应商id */
    @Excel(name = "供应商id")
    private Long supplierId;

    private String supplierName;

    /** 金额 */
    @Excel(name = "金额")
    private BigDecimal amount;

    /** 送货方式 */
    @Excel(name = "送货方式")
    private String deliveryType;

    /** 签约日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签约日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signDate;

    /** 申请人 */
    @Excel(name = "申请人")
    private String applyUser;

    /** 申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyTime;

    /** 申请状态：0未提交1待审核2已审核 */
    @Excel(name = "申请状态：0未提交1待审核2已审核")
    private String applyStatus;

    /** 审核人 */
    @Excel(name = "审核人")
    private String auditUser;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditTime;

    /** 审核状态：0驳回1通过 */
    @Excel(name = "审核状态：0驳回1通过")
    private String auditStatus;

    /** 审核意见 */
    private String auditComment;

    /** 合同物料明细信息 */
    private List<ScmPurchaseContractDetail> scmPurchaseContractDetailList;

    public ScmPurchaseContract() {
    }

    public ScmPurchaseContract(long serialVersionUID, Long id, String contractNo, Long applyId, String applyNo, Long supplierId, String supplierName, BigDecimal amount, String deliveryType, Date signDate, String applyUser, Date applyTime, String applyStatus, String auditUser, Date auditTime, String auditStatus, String auditComment, List<ScmPurchaseContractDetail> scmPurchaseContractDetailList) {

        this.id = id;
        this.contractNo = contractNo;
        this.applyId = applyId;
        this.applyNo = applyNo;
        this.supplierId = supplierId;
        this.supplierName = supplierName;
        this.amount = amount;
        this.deliveryType = deliveryType;
        this.signDate = signDate;
        this.applyUser = applyUser;
        this.applyTime = applyTime;
        this.applyStatus = applyStatus;
        this.auditUser = auditUser;
        this.auditTime = auditTime;
        this.auditStatus = auditStatus;
        this.auditComment = auditComment;
        this.scmPurchaseContractDetailList = scmPurchaseContractDetailList;
    }

    public ScmPurchaseContract(long serialVersionUID, Long id, String contractNo, String contract, Long applyId, String applyNo, Long supplierId, String supplierName, BigDecimal amount, String deliveryType, Date signDate, String applyUser, Date applyTime, String applyStatus, String auditUser, Date auditTime, String auditStatus, String auditComment, List<ScmPurchaseContractDetail> scmPurchaseContractDetailList) {

        this.id = id;
        this.contractNo = contractNo;
        this.contract = contract;
        this.applyId = applyId;
        this.applyNo = applyNo;
        this.supplierId = supplierId;
        this.supplierName = supplierName;
        this.amount = amount;
        this.deliveryType = deliveryType;
        this.signDate = signDate;
        this.applyUser = applyUser;
        this.applyTime = applyTime;
        this.applyStatus = applyStatus;
        this.auditUser = auditUser;
        this.auditTime = auditTime;
        this.auditStatus = auditStatus;
        this.auditComment = auditComment;
        this.scmPurchaseContractDetailList = scmPurchaseContractDetailList;
    }

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setContractNo(String contractNo) 
    {
        this.contractNo = contractNo;
    }

    public String getContractNo() 
    {
        return contractNo;
    }
    public void setApplyId(Long applyId) 
    {
        this.applyId = applyId;
    }

    public Long getApplyId() 
    {
        return applyId;
    }
    public void setApplyNo(String applyNo) 
    {
        this.applyNo = applyNo;
    }

    public String getApplyNo() 
    {
        return applyNo;
    }
    public void setSupplierId(Long supplierId) 
    {
        this.supplierId = supplierId;
    }

    public Long getSupplierId() 
    {
        return supplierId;
    }
    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }
    public void setDeliveryType(String deliveryType) 
    {
        this.deliveryType = deliveryType;
    }

    public String getDeliveryType() 
    {
        return deliveryType;
    }
    public void setSignDate(Date signDate) 
    {
        this.signDate = signDate;
    }

    public Date getSignDate() 
    {
        return signDate;
    }
    public void setApplyUser(String applyUser) 
    {
        this.applyUser = applyUser;
    }

    public String getApplyUser() 
    {
        return applyUser;
    }
    public void setApplyTime(Date applyTime) 
    {
        this.applyTime = applyTime;
    }

    public Date getApplyTime() 
    {
        return applyTime;
    }
    public void setApplyStatus(String applyStatus) 
    {
        this.applyStatus = applyStatus;
    }

    public String getApplyStatus() 
    {
        return applyStatus;
    }
    public void setAuditUser(String auditUser) 
    {
        this.auditUser = auditUser;
    }

    public String getAuditUser() 
    {
        return auditUser;
    }
    public void setAuditTime(Date auditTime) 
    {
        this.auditTime = auditTime;
    }

    public Date getAuditTime() 
    {
        return auditTime;
    }
    public void setAuditStatus(String auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public String getAuditStatus() 
    {
        return auditStatus;
    }
    public void setAuditComment(String auditComment) 
    {
        this.auditComment = auditComment;
    }

    public String getAuditComment() 
    {
        return auditComment;
    }

    public List<ScmPurchaseContractDetail> getScmPurchaseContractDetailList()
    {
        return scmPurchaseContractDetailList;
    }

    public void setScmPurchaseContractDetailList(List<ScmPurchaseContractDetail> scmPurchaseContractDetailList)
    {
        this.scmPurchaseContractDetailList = scmPurchaseContractDetailList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("contractNo", getContractNo())
            .append("applyId", getApplyId())
            .append("applyNo", getApplyNo())
            .append("supplierId", getSupplierId())
            .append("amount", getAmount())
            .append("deliveryType", getDeliveryType())
            .append("signDate", getSignDate())
            .append("applyUser", getApplyUser())
            .append("applyTime", getApplyTime())
            .append("applyStatus", getApplyStatus())
            .append("auditUser", getAuditUser())
            .append("auditTime", getAuditTime())
            .append("auditStatus", getAuditStatus())
            .append("auditComment", getAuditComment())
            .append("createTime", getCreateTime())
            .append("remark", getRemark())
            .append("scmPurchaseContractDetailList", getScmPurchaseContractDetailList())
            .toString();
    }

    /**
     * 获取
     * @return supplierName
     */
    public String getSupplierName() {
        return supplierName;
    }

    /**
     * 设置
     * @param supplierName
     */
    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    /**
     * 获取
     * @return contract
     */
    public String getContract() {
        return contract;
    }

    /**
     * 设置
     * @param contract
     */
    public void setContract(String contract) {
        this.contract = contract;
    }
}
